'use strict';

/**
 * @description: 防抖函数
 * @param {func} 需要防抖的函数
 * @param {wait} 防抖时间
 * @return {*} (context,...args):void
 */
function debounce(func, wait) {
    let timeout;
    return function (...args) {
        const context = this; // 保存当前的 this 上下文
        clearTimeout(timeout);
        timeout = setTimeout(() => {
            func.apply(context, args); // 使用 apply 绑定 this 和传递参数
        }, wait);
    };
}

exports.debounce = debounce;
